package net.gazhi.delonix.core.init;

/**
 * 初始化业务逻辑接口
 * 
 * @author linzb
 */
public interface InitService {

	/**
	 * 设置状态为完成
	 */
	void setFinished();

	/**
	 * 判断是否初始化完成
	 * 
	 * @return
	 */
	boolean isFinished();

	/**
	 * 检测前置条件是否准备好<br>
	 * 如果没准备好就返回 false； 执行成功就返回 true
	 * 
	 * @return
	 * @throws Exception
	 */
	boolean checkAndDoInit() throws Exception;

	/**
	 * 优先次序<br>
	 * 值越小越先执行
	 * 
	 * @return 默认值约定为 5
	 */
	public int getPriority();

}
